home *** CD-ROM | disk | FTP | other *** search
/ Aminet 37 / Aminet 37 (2000)(Schatztruhe)[!][Jun 2000].iso / Aminet / dev / basic / clockita.lha / Orologio.text < prev    next >
Text File  |  2000-04-06  |  19KB  |  725 lines

  1. ;-> Orologio by Stefano Regattin
  2. ;d> 9 ottobre 1998 da Clock
  3. ;m> 10,11,16,17,19,24,29 ottobre 1998
  4. ;m> 4,6 novembre 1998
  5. ;m> 13,14,23 dicembre 1998
  6. ;m> 3 gennaio 1999
  7. ;m> 9,12 marzo 1999
  8. ;m> 25,26 settembre 1999
  9. ;m> 1,2,3,5,6,7,8,9,10,11,22,27,28 febbraio 2000
  10. ;m> 2,3,4,6,9,10,30,31 marzo 2000
  11. ;m> 6 aprile 2000
  12. ;-----------------
  13. #HaiCambiatoLeDimensioniDellaFinestra=2
  14. #HaiPremutoUnTastoDelTopo=8
  15. #HaiRilasciatoUnGadget=$40
  16. #HaiChiusoLaFinestra=$200
  17.  
  18. DEFTYPE .l RastPortFinestra
  19.  
  20. DEFTYPE .b AltezzaFont,AltezzaFontRegistrata
  21. DEFTYPE .b NumeroToolType,StatoAllarme,ToolTypeScritti
  22.  
  23. DEFTYPE .w
  24.  
  25. Statement AggiustaDimensioniFinestraZero{}
  26. SHARED Angolo$
  27. SHARED LunXFinestraZero
  28. SHARED LunXSchermo
  29. SHARED LunYFinestraZero
  30. SHARED PosXFinestraZero
  31. SHARED PosXFinestraZeroAngoloOpposto
  32. SHARED PosYFinestraZero
  33. SHARED PosYFinestraZeroAngoloOpposto
  34.  Select Angolo$
  35.  Case "TOP-RIGHT"
  36.   If PosXFinestraZero+(LunXFinestraZero-1)<>PosXFinestraZeroAngoloOpposto
  37.    PosXFinestraZero=PosXFinestraZeroAngoloOpposto-(LunXFinestraZero-1)
  38.   EndIf
  39.  Case "BOTTOM-RIGHT"
  40.   If PosXFinestraZero+(LunXFinestraZero-1)<>PosXFinestraZeroAngoloOpposto
  41.    PosXFinestraZero=PosXFinestraZeroAngoloOpposto-(LunXFinestraZero-1)
  42.   EndIf
  43.  
  44.   If PosYFinestraZero+(LunYFinestraZero-1)<>PosYFinestraZeroAngoloOpposto
  45.    PosYFinestraZero=PosYFinestraZeroAngoloOpposto-(LunYFinestraZero-1)
  46.   EndIf
  47.  Case "BOTTOM-LEFT"
  48.   If PosYFinestraZero+(LunYFinestraZero-1)<>PosYFinestraZeroAngoloOpposto
  49.    PosYFinestraZero=PosYFinestraZeroAngoloOpposto-(LunYFinestraZero-1)
  50.   EndIf
  51.  End Select
  52.  If LunXFinestraZero>LunXSchermo Then LunXFinestraZero=LunXSchermo
  53.  If PosXFinestraZero+LunXFinestraZero-1>LunXSchermo Then PosXFinestraZero=LunXSchermo-LunXFinestraZero
  54.  If PosXFinestraZero<0 Then PosXFinestraZero=0
  55.  If LunYFinestraZero>WBHeight Then LunYFinestraZero=WBHeight
  56.  If PosYFinestraZero+LunYFinestraZero-1>WBHeight Then PosYFinestraZero=WBHeight-LunYFinestraZero
  57.  If PosYFinestraZero<AltezzaFontSchermo+3 Then PosYFinestraZero=AltezzaFontSchermo+3
  58. End Statement
  59.  
  60. Statement ApriFinestraZero{}
  61. SHARED LunXFinestraZero
  62. SHARED LunYFinestraZero
  63. SHARED PosXFinestraZero
  64. SHARED PosYFinestraZero
  65. SHARED RastPortFinestra
  66.  Window 0,PosXFinestraZero,PosYFinestraZero,LunXFinestraZero,LunYFinestraZero,$140F,"",1,2
  67.  WTitle "Orologio","by Stefano Regattin e-mail>StefanoRegattin@lycosmail.com"
  68.  RastPortFinestra=RastPort(0)
  69.  WindowFont 0
  70. End Statement
  71.  
  72. Statement LeggiToolType{}
  73. SHARED Angolo$
  74. SHARED AngoloRegistrato$
  75. SHARED FontOrologio$
  76. SHARED FontOrologioRegistrato$
  77. SHARED IconaOrologio$
  78. SHARED AltezzaFont
  79. SHARED AltezzaFontRegistrata
  80. SHARED PosXFinestraZero
  81. SHARED PosXFinestraZeroRegistrata
  82. SHARED PosYFinestraZero
  83. SHARED PosYFinestraZeroRegistrata
  84.  ToolTypeLetti.l=GetIconObject(IconaOrologio$)
  85.  If ToolTypeLetti>0
  86.   NuovoFontOrologio$=FindToolValue("FONTNAME")
  87.   NuovaAltezzaFont$=FindToolValue("FONTSIZE")
  88.   NuovaPosXFinestraZero$=FindToolValue("WINDOWX")
  89.   NuovaPosYFinestraZero$=FindToolValue("WINDOWY")
  90.   NuovoAngolo$=FindToolValue("ANGLE")
  91.  
  92.   If NuovoFontOrologio$<>""
  93.    FontOrologioRegistrato$=NuovoFontOrologio$
  94.    FontOrologio$=NuovoFontOrologio$
  95.   EndIf
  96.  
  97.   If NuovaAltezzaFont$<>""
  98.    AltezzaFontRegistrata=Val(NuovaAltezzaFont$)
  99.    AltezzaFont=Val(NuovaAltezzaFont$)
  100.   EndIf
  101.  
  102.   If NuovaPosXFinestraZero$<>""
  103.    PosXFinestraZeroRegistrata=Val(NuovaPosXFinestraZero$)
  104.    PosXFinestraZero=Val(NuovaPosXFinestraZero$)
  105.   EndIf
  106.  
  107.   If NuovaPosYFinestraZero$<>""
  108.    PosYFinestraZeroRegistrata=Val(NuovaPosYFinestraZero$)
  109.    PosYFinestraZero=Val(NuovaPosYFinestraZero$)
  110.   EndIf
  111.  
  112.   If NuovoAngolo$<>""
  113.    Angolo$=NuovoAngolo$
  114.    AngoloRegistrato$=NuovoAngolo$
  115.   EndIf
  116.  
  117.   FreeIconObject
  118.  
  119.  EndIf
  120. End Statement
  121.  
  122. Statement ScriviToolType{}
  123. SHARED Angolo$
  124. SHARED AngoloRegistrato$
  125. SHARED FontOrologio$
  126. SHARED FontOrologioRegistrato$
  127. SHARED IconaOrologio$
  128. SHARED AltezzaFont
  129. SHARED AltezzaFontRegistrata
  130. SHARED PosXFinestraZero
  131. SHARED PosXFinestraZeroAngoloOpposto
  132. SHARED PosXFinestraZeroRegistrata
  133. SHARED PosYFinestraZero
  134. SHARED PosYFinestraZeroAngoloOpposto
  135. SHARED PosYFinestraZeroRegistrata
  136. SHARED ToolTypeScritti
  137.  ToolTypeLetti.l=GetIconObject(IconaOrologio$)
  138.  If ToolTypeLetti>0
  139.   If FindToolType("DONOTWAIT")=False Then NewToolType "DONOTWAIT",""
  140.  
  141.   If FindToolType("FONTNAME")=True
  142.    SetToolValue "FONTNAME",FontOrologio$
  143.   Else
  144.    NewToolType "FONTNAME",FontOrologio$
  145.   EndIf
  146.  
  147.   If FindToolType("FONTSIZE")=True
  148.    SetToolValue "FONTSIZE",Str$(AltezzaFont)
  149.   Else
  150.    NewToolType "FONTSIZE",Str$(AltezzaFont)
  151.   EndIf
  152.  
  153.   Select Angolo$
  154.   Case "TOP-LEFT"
  155.    If FindToolType("WINDOWX")=True
  156.     SetToolValue "WINDOWX",Str$(PosXFinestraZero)
  157.    Else
  158.     NewToolType "WINDOWX",Str$(PosXFinestraZero)
  159.    EndIf
  160.  
  161.    If FindToolType("WINDOWY")=True
  162.     SetToolValue "WINDOWY",Str$(PosYFinestraZero)
  163.    Else
  164.     NewToolType "WINDOWY",Str$(PosYFinestraZero)
  165.    EndIf
  166.   Case "TOP-RIGHT"
  167.    If FindToolType("WINDOWX")=True
  168.     SetToolValue "WINDOWX",Str$(PosXFinestraZeroAngoloOpposto)
  169.    Else
  170.     NewToolType "WINDOWX",Str$(PosXFinestraZeroAngoloOpposto)
  171.    EndIf
  172.  
  173.    If FindToolType("WINDOWY")=True
  174.     SetToolValue "WINDOWY",Str$(PosYFinestraZero)
  175.    Else
  176.     NewToolType "WINDOWY",Str$(PosYFinestraZero)
  177.    EndIf
  178.   Case "BOTTOM-RIGHT"
  179.    If FindToolType("WINDOWX")=True
  180.     SetToolValue "WINDOWX",Str$(PosXFinestraZeroAngoloOpposto)
  181.    Else
  182.     NewToolType "WINDOWX",Str$(PosXFinestraZeroAngoloOpposto)
  183.    EndIf
  184.  
  185.    If FindToolType("WINDOWY")=True
  186.     SetToolValue "WINDOWY",Str$(PosYFinestraZeroAngoloOpposto)
  187.    Else
  188.     NewToolType "WINDOWY",Str$(PosYFinestraZeroAngoloOpposto)
  189.    EndIf
  190.   Case "BOTTOM-LEFT"
  191.    If FindToolType("WINDOWX")=True
  192.     SetToolValue "WINDOWX",Str$(PosXFinestraZero)
  193.    Else
  194.     NewToolType "WINDOWX",Str$(PosXFinestraZero)
  195.    EndIf
  196.  
  197.    If FindToolType("WINDOWY")=True
  198.     SetToolValue "WINDOWY",Str$(PosYFinestraZeroAngoloOpposto)
  199.    Else
  200.     NewToolType "WINDOWY",Str$(PosYFinestraZeroAngoloOpposto)
  201.    EndIf
  202.   End Select
  203.  
  204.   If FindToolType("ANGLE")=True
  205.    SetToolValue "ANGLE",Angolo$
  206.   Else
  207.    NewToolType "ANGLE",Angolo$
  208.   EndIf
  209.  
  210.   ToolTypeScritti=PutIconObject(IconaOrologio$)
  211.   If ToolTypeScritti=True
  212.    FontOrologioRegistrato$=FontOrologio$
  213.    AltezzaFontRegistrata=AltezzaFont
  214.    AngoloRegistrato$=Angolo$
  215.    Select Angolo$
  216.    Case "TOP-LEFT"
  217.     PosXFinestraZeroRegistrata=PosXFinestraZero
  218.     PosYFinestraZeroRegistrata=PosYFinestraZero
  219.    Case "TOP-RIGHT"
  220.     PosXFinestraZeroRegistrata=PosXFinestraZeroAngoloOpposto
  221.     PosYFinestraZeroRegistrata=PosYFinestraZero
  222.    Case "BOTTOM-RIGHT"
  223.     PosXFinestraZeroRegistrata=PosXFinestraZeroAngoloOpposto
  224.     PosYFinestraZeroRegistrata=PosYFinestraZeroAngoloOpposto
  225.    Case "BOTTOM-LEFT"
  226.     PosXFinestraZeroRegistrata=PosXFinestraZeroAngolo
  227.     PosYFinestraZeroRegistrata=PosYFinestraZeroAngoloOpposto
  228.    End Select
  229.   EndIf
  230.  
  231.   FreeIconObject
  232.  
  233.  EndIf
  234. End Statement
  235.  
  236. Statement CercaFont{}
  237. SHARED FontOrologio$
  238. SHARED AltezzaFont
  239.  NEWTYPE .FontInfo
  240.   Nome$
  241.   Altezza.w
  242.   Stile.b
  243.   Segnalatori
  244.   PennaUno
  245.   PennaDue
  246.   ModoDisegno
  247.   Pad
  248.  End NEWTYPE
  249.  
  250.  *Font.FontInfo=ASLFontRequest(0)
  251.  
  252.  If *Font<>0
  253.   FontOrologio$=*Font\Nome
  254.   AltezzaFont=*Font\Altezza
  255.  EndIf
  256. End Statement
  257.  
  258. Statement Impostazioni{}
  259. SHARED Angolo$
  260. SHARED AngoloRegistrato$
  261. SHARED OraAllarme$
  262. SHARED OraDiOggi$
  263. SHARED FontOrologio$
  264. SHARED FontOrologioRegistrato$
  265. SHARED AltezzaFont
  266. SHARED AltezzaFontRegistrata
  267. SHARED LunXFinestraZero
  268. SHARED LunYFinestraZero
  269. SHARED LunXSchermo
  270. SHARED PosXFinestraZero
  271. SHARED PosXFinestraZeroAngoloOpposto
  272. SHARED PosXFinestraZeroRegistrata
  273. SHARED PosYFinestraZero
  274. SHARED PosYFinestraZeroAngoloOpposto
  275. SHARED PosYFinestraZeroRegistrata
  276. SHARED StatoAllarme
  277. SHARED ToolTypeScritti
  278.  Dim Freccia(5)
  279.  BitMap 0,32,16,2
  280.  Freccia(0)=0:Freccia(1)=0
  281.  Freccia(2)=7:Freccia(3)=0
  282.  Freccia(4)=0:Freccia(5)=7
  283.  Polyf 3,&Freccia(0),1
  284.  GetaShape 0,0,0,8,8
  285.  XFlip 0
  286.  Blit 0,8,0
  287.  GetaShape 0,0,0,8,8
  288.  GetaShape 1,8,0,8,8
  289.  YFlip 1
  290.  Blit 1,16,0
  291.  GetaShape 1,8,0,8,8
  292.  GetaShape 2,16,0,8,8
  293.  XFlip 2
  294.  Blit 2,24,0
  295.  GetaShape 2,16,0,8,8
  296.  GetaShape 3,24,0,8,8
  297.  Freccia(0)=0:Freccia(1)=8
  298.  Freccia(2)=7:Freccia(3)=8
  299.  Freccia(4)=0:Freccia(5)=15
  300.  Polyf 3,&Freccia(0),2
  301.  GetaShape 4,0,8,8,8
  302.  XFlip 4
  303.  Blit 4,8,8
  304.  GetaShape 4,0,8,8,8
  305.  GetaShape 5,8,8,8,8
  306.  YFlip 5
  307.  Blit 5,16,8
  308.  GetaShape 5,8,8,8,8
  309.  GetaShape 6,16,8,8,8
  310.  XFlip 6
  311.  Blit 6,24,8
  312.  GetaShape 6,16,8,8,8
  313.  GetaShape 7,24,8,8,8
  314.  
  315.  Free BitMap 0
  316.  
  317.  Use IntuiFont 1
  318.  StringGadget 0,  1, 1,  0, 0,6,6*8
  319.  StringGadget 0,  1,14,  0, 1,25,106
  320.  StringGadget 0, 75, 1,  0, 2,4,4*8
  321.  StringGadget 0,  9,27,  0, 3,5,5*8
  322.  StringGadget 0, 67,27,  0, 4,5,5*8
  323.  StringGadget 0,  9,62,  0, 5,5,5*8
  324.  StringGadget 0, 67,62,  0, 6,5,5*8
  325.  ShapeGadget  0, 94,43,512, 7,0,4
  326.  ShapeGadget  0,103,43,512, 8,1,5
  327.  ShapeGadget  0,103,51,512, 9,2,6
  328.  ShapeGadget  0, 94,51,512,10,3,7
  329.  TextGadget   0, 58, 1,  1,11,"A"
  330.  TextGadget   0,  1,75,  1,12,"*** Salva ***"
  331.  
  332.  PosXFinestraZero=WindowX-WLeftOff
  333.  PosYFinestraZero=WindowY-WTopOff
  334.  PosXFinestraZeroAngoloOpposto=PosXFinestraZero+(LunXFinestraZero-1)
  335.  PosYFinestraZeroAngoloOpposto=PosYFinestraZero+(LunYFinestraZero-1)
  336.  
  337.  PosXFinestraUno=WindowX
  338.  PosYFinestraUno=WindowY
  339.  LunXFinestraUno=124
  340.  LunYFinestraUno=WTopOff+93
  341.  
  342.  If PosXFinestraUno+LunXFinestraUno>LunXSchermo Then PosXFinestraUno=LunXSchermo-LunXFinestraUno
  343.  If PosYFinestraUno+LunYFinestraUno>WBHeight Then PosYFinestraUno=WBHeight-LunYFinestraUno
  344.  
  345.  Window 1,PosXFinestraUno,PosYFinestraUno,LunXFinestraUno,LunYFinestraUno,$140E,"",1,2,0
  346.  WTitle "Impostazioni","Imposta le variabili dell'orologio"
  347.  WindowFont 1
  348.  
  349.  Select Angolo$
  350.  Case "TOP-LEFT"
  351.   Enable  0,3
  352.   Enable  0,4
  353.   Disable 0,5
  354.   Disable 0,6
  355.   Toggle  0,7,On
  356.   Redraw 1,7
  357.  Case "TOP-RIGHT"
  358.   Enable  0,3
  359.   Disable 0,4
  360.   Disable 0,5
  361.   Enable  0,6
  362.   Toggle  0,8,On
  363.   Redraw 1,8
  364.  Case "BOTTOM-RIGHT"
  365.   Disable 0,3
  366.   Disable 0,4
  367.   Enable  0,5
  368.   Enable  0,6
  369.   Toggle  0,9,On
  370.   Redraw 1,9
  371.  Case "BOTTOM-LEFT"
  372.   Disable 0,3
  373.   Enable  0,4
  374.   Enable  0,5
  375.   Disable 0,6
  376.   Toggle  0,10,On
  377.   Redraw 1,10
  378.  End Select
  379.  
  380.  Redraw 1,3
  381.  Redraw 1,4
  382.  Redraw 1,5
  383.  Redraw 1,6
  384.  
  385.  GadgetBorder 94,42,17,17
  386.  
  387.  WLocate  0,29:Print "X"
  388.  WLocate 58,29:Print "Y"
  389.  WLocate  1,43:Print"Angolo"
  390.  WLocate 42,52:Print"fisso>"
  391.  WLocate  0,64:Print "X"
  392.  WLocate 58,64:Print "Y"
  393.  
  394.  If OraAllarme$="" Then OraAllarme$=UnLeft$(OraDiOggi$,3)
  395.  
  396.  Repeat
  397.   SetString 0,0,OraAllarme$
  398.   Redraw 1,0
  399.   SetString 0,1,FontOrologio$
  400.   Redraw 1,1
  401.   SetString 0,2,Str$(AltezzaFont)
  402.   Redraw 1,2
  403.   SetString 0,3,Str$(PosXFinestraZero)
  404.   Redraw 1,3
  405.   SetString 0,4,Str$(PosYFinestraZero)
  406.   Redraw 1,4
  407.   SetString 0,5,Str$(PosXFinestraZeroAngoloOpposto)
  408.   Redraw 1,5
  409.   SetString 0,6,Str$(PosYFinestraZeroAngoloOpposto)
  410.   Redraw 1,6
  411.  
  412.   ValoriCambiati.b=False
  413.   If FontOrologio$<>FontOrologioRegistrato$ Then ValoriCambiati=True
  414.   If AltezzaFont<>AltezzaFontRegistrata Then ValoriCambiati=True
  415.   Select Angolo$
  416.   Case "TOP-LEFT"
  417.    If PosXFinestraZero<>PosXFinestraZeroRegistrata Then ValoriCambiati=True
  418.    If PosYFinestraZero<>PosYFinestraZeroRegistrata Then ValoriCambiati=True
  419.   Case "TOP-RIGHT"
  420.    If PosXFinestraZero+(LunXFinestraZero-1)<>PosXFinestraZeroRegistrata Then ValoriCambiati=True
  421.    If PosYFinestraZero<>PosYFinestraZeroRegistrata Then ValoriCambiati=True
  422.   Case "BOTTOM-RIGHT"
  423.    If PosXFinestraZero+(LunXFinestraZero-1)<>PosXFinestraZeroRegistrata Then ValoriCambiati=True
  424.    If PosYFinestraZero+(LunYFinestraZero-1)<>PosYFinestraZeroRegistrata Then ValoriCambiati=True
  425.   Case "BOTTOM-LEFT"
  426.    If PosXFinestraZero<>PosXFinestraZeroRegistrata Then ValoriCambiati=True
  427.    If PosYFinestraZero+(LunYFinestraZero-1)<>PosYFinestraZeroRegistrata Then ValoriCambiati=True
  428.   End Select
  429.   If Angolo$<>AngoloRegistrato$ Then ValoriCambiati=True
  430.   If ValoriCambiati=True Then Enable 0,12 Else Toggle 0,12,Off:Disable 0,12
  431.   Redraw 1,12
  432.  
  433.   EventoFinestraUno.l=WaitEvent
  434.  
  435.   Select EventoFinestraUno
  436.   Case #HaiRilasciatoUnGadget
  437.    If GadgetHit<7 Then ActivateString 1,GadgetHit
  438.    Select GadgetHit
  439.    Case 0
  440.     OraAllarme$=StringText$(0,0)
  441.    Case 1
  442.     NuovoFontOrologio$=StringText$(0,1)
  443.     If NuovoFontOrologio$="" Then CercaFont{}
  444.     If Right$(NuovoFontOrologio$,5)<>".font" Then NuovoFontOrologio$+".font"
  445.     If Len(NuovoFontOrologio$)>0
  446.      If Exists("FONTS:"+NuovoFontOrologio$)
  447.       FontOrologio$=NuovoFontOrologio$
  448.      EndIf
  449.     EndIf
  450.    Case 2
  451.     AltezzaFont=Val(StringText$(0,2))
  452.     AltezzaFont=Max(AltezzaFont,6)
  453.    Case 3
  454.     PosXFinestraZero=Val(StringText$(0,3))
  455.    Case 4
  456.     PosYFinestraZero=Val(StringText$(0,4))
  457.    Case 5
  458.     PosXFinestraZeroAngoloOpposto=Val(StringText$(0,5))
  459.    Case 6
  460.     PosYFinestraZeroAngoloOpposto=Val(StringText$(0,6))
  461.    Case 7
  462.     If GadgetStatus(0,7)=True Then Angolo$="TOP-LEFT"
  463.    Case 8
  464.     If GadgetStatus(0,8)=True Then Angolo$="TOP-RIGHT"
  465.    Case 9
  466.     If GadgetStatus(0,9)=True Then Angolo$="BOTTOM-RIGHT"
  467.    Case 10
  468.     If GadgetStatus(0,10)=True Then Angolo$="BOTTOM-LEFT"
  469.    Case 11
  470.     StatoAllarme=GadgetStatus(0,11)
  471.    Case 12
  472.     ScriviToolType{}
  473.     If ToolTypeScritti=True
  474.      Toggle 0,12,Off
  475.      Disable 0,12
  476.      Redraw 1,12
  477.     Else
  478.      Toggle 0,12,On
  479.     EndIf
  480.    End Select
  481.  
  482.    Select Angolo$
  483.    Case "TOP-LEFT"
  484.     PosXFinestraZeroAngoloOpposto=PosXFinestraZero+(LunXFinestraZero-1)
  485.     PosYFinestraZeroAngoloOpposto=PosYFinestraZero+(LunYFinestraZero-1)
  486.     Enable  0,3
  487.     Enable  0,4
  488.     Disable 0,5
  489.     Disable 0,6
  490.    Case "TOP-RIGHT"
  491.     PosXFinestraZero=PosXFinestraZeroAngoloOpposto-(LunXFinestraZero-1)
  492.     PosYFinestraZeroAngoloOpposto=PosYFinestraZero+(LunYFinestraZero-1)
  493.     Disable 0,3
  494.     Enable  0,4
  495.     Enable  0,5
  496.     Disable 0,6
  497.    Case "BOTTOM-RIGHT"
  498.     PosXFinestraZero=PosXFinestraZeroAngoloOpposto-(LunXFinestraZero-1)
  499.     PosYFinestraZero=PosYFinestraZeroAngoloOpposto-(LunYFinestraZero-1)
  500.     Disable 0,3
  501.     Disable 0,4
  502.     Enable  0,5
  503.     Enable  0,6
  504.    Case "BOTTOM-LEFT"
  505.     PosXFinestraZeroAngoloOpposto=PosXFinestraZero+(LunXFinestraZero-1)
  506.     PosYFinestraZero=PosYFinestraZeroAngoloOpposto-(LunYFinestraZero-1)
  507.     Enable  0,3
  508.     Disable 0,4
  509.     Disable 0,5
  510.     Enable  0,6
  511.    End Select
  512.  
  513.   End Select
  514.  Until EventoFinestraUno=#HaiChiusoLaFinestra
  515.  CloseWindow 1
  516.  Use Window 0
  517. End Statement
  518.  
  519. Statement DataDiOggi{}
  520. SHARED Allarme$
  521. SHARED DataDiOggi$
  522. SHARED LunghezzaDataDiOggi
  523. SHARED LunghezzaScrittaAllarme
  524. SHARED RastPortFinestra
  525.  Select WeekDay
  526.  Case 0
  527.   GiornoDellaSettimana$="Dom"
  528.  Case 1
  529.   GiornoDellaSettimana$="Lun"
  530.  Case 2
  531.   GiornoDellaSettimana$="Mar"
  532.  Case 3
  533.   GiornoDellaSettimana$="Mer"
  534.  Case 4
  535.   GiornoDellaSettimana$="Gio"
  536.  Case 5
  537.   GiornoDellaSettimana$="Ven"
  538.  Case 6
  539.   GiornoDellaSettimana$="Sab"
  540.  End Select
  541.  Giorno$=Str$(Days)
  542.  Select Months
  543.  Case 1
  544.   Mese$="gennaio"
  545.  Case 2
  546.   Mese$="febbraio"
  547.  Case 3
  548.   Mese$="marzo"
  549.  Case 4
  550.   Mese$="aprile"
  551.  Case 5
  552.   Mese$="maggio"
  553.  Case 6
  554.   Mese$="giugno"
  555.  Case 7
  556.   Mese$="luglio"
  557.  Case 8
  558.   Mese$="agosto"
  559.  Case 9
  560.   Mese$="settembre"
  561.  Case 10
  562.   Mese$="ottobre"
  563.  Case 11
  564.   Mese$="novembre"
  565.  Case 12
  566.   Mese$="dicembre"
  567.  End Select
  568.  Anno$=Str$(Years)
  569.  DataDiOggi$=" "+GiornoDellaSettimana$+", "+Giorno$+" "+Mese$+" "+Anno$+" "
  570.  LunghezzaDataDiOggi.w=TextLength_(RastPortFinestra,&DataDiOggi$,Len(DataDiOggi$))
  571. End Statement
  572.  
  573. WBStartup
  574.  
  575. WbToScreen 0
  576.  
  577. IndirizzoSchermo.l=Peek.l(Addr Screen(0))
  578. LunXSchermo=Peek.w(IndirizzoSchermo+12)
  579.  
  580. FontOrologio$="Data70.font"
  581. AltezzaFont=13
  582.  
  583. AltezzaFontSchermo.b=8
  584. OpenFontPrefs
  585.  AltezzaFontSchermo.b=DefaultFontHeight(2)
  586. CloseFontPrefs
  587.  
  588. IconaOrologio$=ProgPath$+".info"
  589.  
  590. PosXFinestraZero=0
  591. PosYFinestraZero=AltezzaFontSchermo+3
  592. LunXFinestraZero=70
  593. LunYFinestraZero=30
  594. Angolo$="TOP-LEFT"
  595.  
  596. LeggiToolType{}
  597.  
  598. LoadFont 0,FontOrologio$,AltezzaFont
  599.  
  600. LoadFont 1,"topaz.font",8
  601.  
  602. Select Angolo$
  603. Case "TOP-RIGHT"
  604.  PosXFinestraZeroAngoloOpposto=PosXFinestraZero
  605.  PosXFinestraZero-(LunXFinestraZero-1)
  606. Case "BOTTOM-RIGHT"
  607.  PosXFinestraZeroAngoloOpposto=PosXFinestraZero
  608.  PosXFinestraZero-(LunXFinestraZero-1)
  609.  PosYFinestraZeroAngoloOpposto=PosYFinestraZero
  610.  PosYFinestraZero-(LunYFinestraZero-1)
  611. Case "BOTTOM-LEFT"
  612.  PosYFinestraZeroAngoloOpposto=PosYFinestraZero
  613.  PosYFinestraZero-(LunYFinestraZero-1)
  614. End Select
  615.  
  616. AggiustaDimensioniFinestraZero{}
  617.  
  618. ApriFinestraZero{}
  619.  
  620. DataDiOggi$=Date$(SystemDate)
  621. DataDiOggi{}
  622.  
  623. LunXFinestraZero=WLeftOff+LunghezzaDataDiOggi+18
  624. LunYFinestraZero=WTopOff+AltezzaFont*2+6
  625.  
  626. Select Angolo$
  627. Case "TOP-LEFT"
  628.  PosXFinestraZeroAngoloOpposto=PosXFinestraZero+(LunXFinestraZero-1)
  629.  PosYFinestraZeroAngoloOpposto=PosYFinestraZero+(LunYFinestraZero-1)
  630. Case "TOP-RIGHT"
  631.  PosXFinestraZero=PosXFinestraZeroAngoloOpposto
  632.  PosXFinestraZero-(LunXFinestraZero-1)
  633.  PosYFinestraZeroAngoloOpposto=PosYFinestraZero+(LunYFinestraZero-1)
  634. Case "BOTTOM-RIGHT"
  635.  PosXFinestraZero=PosXFinestraZeroAngoloOpposto
  636.  PosXFinestraZero-(LunXFinestraZero-1)
  637.  PosYFinestraZero=PosYFinestraZeroAngoloOpposto
  638.  PosYFinestraZero-(LunYFinestraZero-1)
  639. Case "BOTTOM-LEFT"
  640.  PosXFinestraZeroAngoloOpposto=PosXFinestraZero+(LunXFinestraZero-1)
  641.  PosYFinestraZero=PosYFinestraZeroAngoloOpposto
  642.  PosYFinestraZero-(LunYFinestraZero-1)
  643. End Select
  644.  
  645. CloseWindow 0
  646.  
  647. AggiustaDimensioniFinestraZero{}
  648.  
  649. ApriFinestraZero{}
  650.  
  651. RaggioCerchio=AltezzaFont/2
  652.  
  653. Repeat
  654.  EventoFinestraZero.l=Event
  655.  
  656.  If EventoFinestraZero=#HaiCambiatoLeDimensioniDellaFinestra
  657.   AltezzaFont=InnerHeight/2
  658.   If AltezzaFont<4 Then AltezzaFont=4
  659.   LunXFinestraZero=WindowWidth
  660.   LunYFinestraZero=WindowHeight
  661.   RaggioMassimoCerchio=AltezzaFont/2
  662.   LoadFont 0,FontOrologio$,AltezzaFont
  663.   WindowFont 0
  664.   WCls
  665.  EndIf
  666.  
  667.  If EventoFinestraZero=#HaiPremutoUnTastoDelTopo
  668.   PrecedenteFontOrologio$=FontOrologio$
  669.   PrecedenteAltezzaFont.b=AltezzaFont
  670.   Impostazioni{}
  671.   Use Window 0
  672.   FinestraZeroAggiornata.b=False
  673.  
  674.   If FontOrologio$<>PrecedenteFontOrologio$ OR AltezzaFont<>PrecedenteAltezzaFont
  675.    LoadFont 0,FontOrologio$,AltezzaFont
  676.    WindowFont 0
  677.    DataDiOggi{}
  678.    LunXFinestraZero=WLeftOff+LunghezzaDataDiOggi+18
  679.    LunYFinestraZero=WTopOff+AltezzaFont*2+6
  680.    CloseWindow 0
  681.    AggiustaDimensioniFinestraZero{}
  682.    ApriFinestraZero{}
  683.    FinestraZeroAggiornata=True
  684.   EndIf
  685.  
  686.   If FinestraZeroAggiornata=False
  687.    If PosXFinestraZero<>WindowX-WLeftOff OR PosYFinestraZero<>WindowY-WTopOff
  688.     CloseWindow 0
  689.     AggiustaDimensioniFinestraZero{}
  690.     ApriFinestraZero{}
  691.    EndIf
  692.   EndIf
  693.  
  694.   RaggioMassimoCerchio=AltezzaFont/2
  695.   RaggioCerchio=RaggioMassimoCerchio
  696.  EndIf
  697.  
  698.  DataDiOggi$=Date$(SystemDate)
  699.  DataDiOggi{}
  700.  XData.w=(InnerWidth-LunghezzaDataDiOggi)/2
  701.  WLocate XData,0:Print DataDiOggi$
  702.  OraDiOggi$=Str$(Hours/10)
  703.  OraDiOggi$+Str$(Hours MOD 10)+":"
  704.  OraDiOggi$+Str$(Mins/10)
  705.  OraDiOggi$+Str$(Mins MOD 10)+":"
  706.  OraDiOggi$+Str$(Secs/10)
  707.  OraDiOggi$+Str$(Secs MOD 10)
  708.  LunghezzaOraDiOggi.w=TextLength_(RastPortFinestra,&OraDiOggi$,Len(OraDiOggi$))
  709.  XOra.w=(InnerWidth-LunghezzaOraDiOggi)/2-1
  710.  WLocate XOra,AltezzaFont:Print "  ",OraDiOggi$,"  "
  711.  If StatoAllarme=On
  712.   If Left$(OraDiOggi$,5)=OraAllarme$ Then BeepScreen 0
  713.   XAllarme=InnerWidth-1-AltezzaFont/2
  714.   YAllarme=InnerHeight-1-AltezzaFont/2
  715.   WCircle XAllarme,YAllarme,RaggioCerchio,1
  716.  EndIf
  717.  Delay_ 50
  718.  If StatoAllarme=On
  719.   WCircle XAllarme,YAllarme,RaggioCerchio,0
  720.   RaggioCerchio+1
  721.   If RaggioCerchio>RaggioMassimoCerchio Then RaggioCerchio=1
  722.  EndIf
  723. Until EventoFinestraZero=#HaiChiusoLaFinestra
  724. End
  725.